/**
 * 列表控制器
 *
 * @author LuZhiChao
 * @version 1.0.0, 2017/11/23
 * @see Controller
 * @since
 */
(function (app, ng) {
    'use strict';

    /**
     * 注册控制器
     */
    app.controller('flexigrid.edit.ctrl', FlexiGridEditController);

    /**
     * 依赖项
     */
    FlexiGridEditController.$inject = ['$scope', '$controller', 'module', 'table.flexigrid.service']
        .concat(['$state', '$stateParams', '$uibModalInstance', 'dialogs','data']);

    /**
     * 声明控制器
     * @param $scope 当前作用域
     * @param $controller 控制器服务
     * @param module 当前模块
     * @param Service 当前服务
     * @param $state 路由状态
     * @param $stateParams 路由参数
     * @param $uibModal 模态框服务
     * @param dialogs 提示框服务
     * @constructor
     */
    function FlexiGridEditController($scope, $controller, module, FlexiGridService, $state, $stateParams, $uibModalInstance, dialogs,data) {
        // 初始化
        var vm = this;
        extendResourceController();
        var iResource = vm.iResource;
        vm.demo = data.data;
        vm.title = data.title;
        if (vm.title === "common.detail"){
            vm.isDetail = true;
        }else {
            vm.isDetail = false;
        }


        /**
         * 继承Restful控制器
         */
        function extendResourceController() {
            var controller = $controller('iResourceController', {$scope: $scope, module: module, iResource: FlexiGridService});
            ng.extend(vm, controller);
        }

        // 方法引用
        ng.extend(vm, {
            save : save, //保存
            cancel:cancel, //取消
        });

        function save() {
            iResource.save(vm.demo).then(function (data) {
                if(data.success){
                    dialogs.notify(data);
                }
                $uibModalInstance.close();
            })
        };
        function cancel() {
            //dismiss也是在模态框关闭的时候进行调用,而它返回的是一个reason
            $uibModalInstance.dismiss('cancel');
        };
    }
})(iApp.module(), window.angular);